System and methods for launching an application on an electronic device

ABSTRACT

A method and system to automatically load an application. Based on automatically generated statistics tracking proximities of application access and detected events, an application is selected with a greatest probability of being accessed within a time proximity of an event that is defined by operating environment criteria associated with launching the application. An association is determined, based on the statistics, between a user&#39;s launching of the application in proximity to a particular time of day over a plurality of days. In response to detecting an occurrence of the event and based on the association, the application is automatically loaded into a background of the device independent of a present user command to load the application. Based on loading the application and receiving an indication of user presence within a predetermined period of time after the occurrence of the event, the application is brought into a foreground of the device.

TECHNICAL FIELD

The following relates generally to launching an application on anelectronic device.

DESCRIPTION OF THE RELATED ART

Many electronic devices, including mobile devices, can install and run alarge selection of applications. For example, applications can includemessaging applications for email and social networking websites, andinformational applications for providing weather, traffic, news, etc. Asmore applications are installed on an electronic device, the userinterface may organize the applications on multiple home screens ormenus, such that a user may have to navigate through multiple screens ormenu options in order to find the desired application to open. As aresult, the user experience to locate and launch a desired applicationmay be inconvenient and time consuming, especially if the desiredapplication is used frequently by the user.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments will now be described making reference to theappended drawings wherein:

FIG. 1 is an example plan view of a display of an electronic devicedisplaying a notification alert.

FIG. 2 is an example plan view of a display of an electronic devicedisplaying an email viewer application.

FIG. 3 is a block diagram of an example of a wireless communicationsystem.

FIG. 4 is a block diagram of an example of an electronic device.

FIG. 5 is a plan view of an example electronic device.

FIG. 6 is a plan view of another example electronic device.

FIG. 7 is a block diagram of an example configuration of an applicationlauncher.

FIG. 8 is a flow diagram of example computer executable instructions forlaunching an application on an electronic device.

FIG. 9 is a flow diagram of other example computer executableinstructions for launching an application on an electronic device.

FIG. 10 is a flow diagram of example computer executable instructionsfor generating and processing statistical information on an electronicdevice.

DETAILED DESCRIPTION

It will be appreciated that for simplicity and clarity of illustration,where considered appropriate, reference numerals may be repeated amongthe figures to indicate corresponding or analogous elements. Inaddition, numerous specific details are set forth in order to provide athorough understanding of the example embodiments described herein.However, it will be understood by those of ordinary skill in the artthat the example embodiments described herein may be practised withoutthese specific details. In other instances, well-known methods,procedures and components have not been described in detail so as not toobscure the example embodiments described herein. Also, the descriptionis not to be considered as limiting the scope of the example embodimentsdescribed herein.

It has been recognized that it may be inconvenient and time consuming tolocate and launch a desired application on an electronic device. Toaddress this, the following describes a method, computer readablestorage medium and electronic device operable to launch an application.

In an example, there is provided a method of operating an electronicdevice to launch an application. The method includes detecting an eventassociated with the application and, when an indicator of user presenceis detected within a predetermined period of time after the event,launching the application. The method may further include loading theapplication in the background upon detecting the event if theapplication has not been loaded, wherein launching the applicationincludes bringing the application to the foreground. The method mayfurther include, when an indicator of user presence is not detectedwithin the predetermined period of time after the event, closing theapplication loaded in the background.

In another example, there is provided a computer readable storage mediumfor launching an application on an electronic device. The computerreadable storage medium includes computer executable instructions thatwhen executed by a processor cause the processor to detect an eventassociated with the application and, when an indicator of user presenceis detected within a predetermined period of time after the event,launch the application. The computer readable storage medium may includefurther computer executable instructions that when executed by aprocessor cause the processor to load the application in the backgroundupon detecting the event if the application has not been loaded, whereinlaunching the application includes bringing the application to theforeground. The computer readable storage medium may include furthercomputer executable instructions that when executed by a processor causethe processor to, when an indicator of user presence is not detectedwithin the predetermined period of time after the event, close theapplication loaded in the background.

In another example, there is provided an electronic device to launch anapplication. The electronic device includes a processor configured todetect an event associated with the application and, when an indicatorof user presence is detected within a predetermined period of time afterthe event, launch the application. The processor may be furtherconfigured to load the application in the background upon detecting theevent if the application has not been loaded, wherein launching theapplication includes bringing the application to the foreground. Theprocessor may be further configured to, when an indicator of userpresence is not detected within the predetermined period of time afterthe event, close the application loaded in the background. Theelectronic device may include an accelerometer coupled to the processor.

For the method, computer readable storage medium, and electronic device,detecting the indicator of user presence may include detecting a motionof the electronic device. Detecting the motion of the electronic devicemay include detecting any one or more of a change in an accelerometerreading of the electronic device, removal of the electronic device froma holster, and a disconnection of the electronic device from a dockingstation or charger. The event may include any one or more of anotification alert of a message that can be accessed by the application,and an operating environment criterion such as a particular time of day.

For the method, computer readable storage medium, and electronic device,the event may be associated with the application based on statisticalinformation generated from tracking proximity of an occurrence of theevent and usage of the application, such as by selecting the applicationwith the greatest probability of being accessed by a user, near theoccurrence of the event.

In an example, the electronic device operates in a bedside mode and theevent includes an alarm. Detecting the indicator of user presence mayinclude detecting a user input to turn off the alarm.

Referring to FIG. 1, an example plan view of a display 102 of anelectronic device 100 is provided. The display 102 of the electronicdevice 100 is displaying an example notification alert 104 of a newemail message received by the electronic device 100. It will beappreciated that the notification alert 104 may take on other graphics,text, images, etc., as well as other forms of alerts such as audioalerts (e.g. sounds, alarms) and/or haptic alerts (e.g. vibrations),used alone or in combination therewith.

In the example of FIG. 1, the electronic device 100 may be configuredsuch that, if an indicator of a user presence is detected within apredetermined period of time after the notification alert 104 isdisplayed, the electronic device 100 may launch an email viewerapplication 200 which displays the email message that is the subject ofthe notification alert 104 (FIG. 2). An example of an indicator of userpresence can be the lifting or raising of the electronic device 100 by auser so that the display 102 is more visible to the user. Such a liftingor raising motion of the electronic device 100 may be detected by amotion sensor of the electronic device 100, such as an accelerometer. Ifthe motion of the electronic device 100 changes within a short period oftime (e.g. 5 seconds) after the electronic device 100 displays thenotification alert 104, it may suggest that the change in motion of theelectronic device 100 is caused by the user's interest in thenotification alert 104 and that the user will subsequently open theemail viewer application 200 to view the underlying message of thenotification alert 104. By configuring the electronic device 100 toautomatically launch the email viewer application 200 upon detecting thechange in motion of the electronic device 100, manually locating andlaunching the application is not needed by the user, thus saving theuser time and effort.

It will be appreciated that the electronic device 100 can detect otherevents which are associated with one or more applications. In anotherexample embodiment, a user may routinely wake up at around 7:30 am, andas part of the user's daily routine, check email, weather, and trafficshortly after awakening. In an example, the electronic device 100 can beconfigured to detect the time period 7:30 am, and if an indicator ofuser presence is detected within a predetermined period of time (e.g. 30minutes) of 7:30a m, the electronic device 100 can launch an emailviewer application, a weather application and a traffic application,which would have been manually launched by the user as part of his/hermorning routine. In this example, the indicator of user presence caninclude detecting a motion of the electronic device 100 (which forexample can indicate the user is awake and lifts the electronic device100 for use), detecting an user input to turn off an alarm of theelectronic device 100 (which for example can indicate the user is awakeand will be using the electronic device 100 shortly) and/or detecting adisconnection of the electronic device from a docking station or charger(which for example can indicate the user is awake and is taking thedevice with him/her for use). By configuring the electronic device 100to automatically launch multiple applications, manually locating andlaunching each application is not needed by the user, thus saving theuser time and effort. By only launching the applications (e.g. emailviewer, weather and traffic reporting applications, etc.) only when anindicator of the user presence is detected, the electronic device 100can avoid unnecessarily launching applications, thus saving power andcomputational resources for other tasks.

It will be appreciated that an event can include a notification alert104 and one or more operating environment criteria, such as a time ofday or operating mode of the electronic device 100. For example, anevent may be defined as a notification alert 104 that is received by theelectronic device during a time when the user has a scheduled meeting,as indicated by a calendar/scheduling application running on theelectronic device 100. During a meeting, a user may want the ability toquickly access new incoming messages without having to manually enterinputs (e.g. touch gestures, button presses, etc.) to the electronicdevice 100 to open the email viewer application 200. In an example, theuser can simply move the electronic device 100 within a predeterminedtime period of receiving a notification alert 104 (e.g. a blinking LEDon the housing of the electronic device 100) to cause the electronicdevice 100 to launch the email viewer application 200 and display thenew message. Therefore, a user in a meeting can open and review a newmessage in response to a notification alert 104 by performing a discretemovement of the electronic device 100 (e.g. tilting the display 102 ofan electronic device 100 towards him/her). It will be appreciated thatan event associated with an application can be further defined byadditional operating environment criteria so that the electronic device100 can be configured to only launch an application under certainsituations desired by the user.

Examples of applicable electronic devices may include, withoutlimitation, cellular phones, smart-phones, tablet computers, wirelessorganizers, personal digital assistants, computers, laptops, handheldwireless communication devices, wirelessly enabled notebook computers,portable gaming devices, and the like. Such devices can be commonlyreferred to as mobile devices due to their portability. It will howeverbe appreciated that the principles described herein are also suitable toother electronic devices, such as for example personal computers (PCs),tabletop computing devices, wall-mounted screens such as kiosks, or anyother computing device.

The electronic device 100 may be a two-way communication device withadvanced data communication capabilities including the capability tocommunicate with other electronic devices or computer systems through anetwork of transceiver stations. The electronic device may also have thecapability to allow voice communication. Depending on the functionalityprovided by the electronic device, it may be referred to as a datamessaging device, a two-way pager, a cellular telephone with datamessaging capabilities, a wireless Internet appliance, or a datacommunication device (with or without telephony capabilities).

Referring to FIG. 3, an example communication system 400 is shown. Thecommunication system 400, in this example, enables, at least in part,electronic devices 100 to communicate with each other via a wirelessnetwork 402. For example, as shown, data 404 may be exchanged betweenvarious electronic devices 100. Data 404 that is sent from oneelectronic device 100 to another electronic device 100 may betransmitted according to a particular messaging or communication medium,protocol, or other mechanism. For example, as shown in FIG. 3, data 404may be sent over the wireless network 402 via a component of a networkinfrastructure 406. The network infrastructure 406 can include varioussystems that may be used by the electronic devices 100 to exchange data404. For example, a peer-to-peer (P2P) system, a short message servicecentre (SMSC), an email system (e.g. web-based, enterprise based, orotherwise), a web system (e.g. hosting a website or web service), a hostsystem (e.g. enterprise server), and social networking system may beprovided by or within or be otherwise supported or facilitated by thenetwork infrastructure 406. The electronic devices 100 may thereforesend data to or receive data from other electronic devices 100 via oneor more particular systems with which the electronic devices 100 arecommunicable via the wireless network 402 and network infrastructure406.

Referring to FIG. 4, a block diagram is provided to aid the reader inunderstanding an example configuration of an electronic device 100. Theelectronic device 100 includes a number of components such as a mainprocessor 502 that controls the overall operation of the electronicdevice 100. Communication functions, including data and voicecommunications, are performed through a communication subsystem 504. Thecommunication subsystem 504 receives messages from and sends messages toa wireless network 402. In this example of the electronic device 100,the communication subsystem 504 is configured in accordance with theGlobal System for Mobile Communication (GSM) and General Packet RadioServices (GPRS) standards, which is used worldwide. Other communicationconfigurations that are equally applicable are the 3G and 4G networkssuch as Enhanced Data-rates for Global Evolution (EDGE), UniversalMobile Telecommunications System (UMTS) and High-Speed Downlink PacketAccess (HSDPA), Long Term Evolution (LTE), Worldwide Interoperabilityfor Microwave Access (Wi-Max), etc. New standards are still beingdefined, but it is believed that they will have similarities to thenetwork behaviour described herein, and it will also be understood bypersons skilled in the art that the example described herein areintended to use any other suitable standards that are developed in thefuture. The wireless link connecting the communication subsystem 504with the wireless network 402 represents one or more different RadioFrequency (RF) channels, operating according to defined protocolsspecified for GSM/GPRS communications.

The main processor 502 also interacts with additional subsystems such asa Random Access Memory (RAM) 506, a flash memory 508, a touch-sensitivedisplay 102, an auxiliary input/output (I/O) subsystem 512, a data port514, a keyboard 516, a speaker 518, a microphone 520, a GPS receiver521, short-range communications 522, a camera 523, a accelerometer 525,a gyroscope 529, a magnetometer 527 and other device subsystems 524.Some of the subsystems of the electronic device 100 performcommunication-related functions, whereas other subsystems may provide“resident” or on-device functions. By way of example, the display 102and the keyboard 516 may be used for both communication-relatedfunctions, such as entering a text message for transmission over thenetwork 402, and device-resident functions such as a calculator or tasklist. In one example, the electronic device 100 can include a nontouch-sensitive display in place of, or in addition to, thetouch-sensitive display 102.

The electronic device 100 can send and receive communication signalsover the wireless network 402 after required network registration oractivation procedures have been completed. Network access is associatedwith a subscriber or user of the electronic device 100. To identify asubscriber, the electronic device 100 may use a subscriber modulecomponent or “smart card” 526, such as a Subscriber Identity Module(SIM), a Removable User Identity Module (RUIM) and a UniversalSubscriber Identity Module (USIM). In the example shown, a SIM/RUIM/USIM526 is to be inserted into a SIM/RUIM/USIM interface 528 in order tocommunicate with a network. Without the component 526, the electronicdevice 100 is not fully operational for communication with the wirelessnetwork 402. Once the SIM/RUIM/USIM 526 is inserted into theSIM/RUIM/USIM interface 528, it is coupled to the main processor 502.

The electronic device 100 is typically a battery-powered device andincludes a battery interface 532 for receiving one or more rechargeablebatteries 530. In at least some examples, the battery 530 can be a smartbattery with an embedded microprocessor. The battery interface 532 iscoupled to a regulator (not shown), which assists the battery 530 inproviding power to the electronic device 100. Although currenttechnology makes use of a battery, future technologies such as microfuel cells may provide the power to the electronic device 100.

The electronic device 100 also includes an operating system 534 andsoftware components 536 to 548 which are described in more detail below.The operating system 534 and the software components 536 to 548 that areexecuted by the main processor 502 are typically stored in a persistentstore such as the flash memory 508, which may alternatively be aread-only memory (ROM) or similar storage element (not shown). Thoseskilled in the art will appreciate that portions of the operating system534 and the software components 536 to 548, such as specific deviceapplications, or parts thereof, may be temporarily loaded into avolatile store such as the RAM 506. Other software components can alsobe included, as is well known to those skilled in the art.

The subset of software applications 536 that control basic deviceoperations, including data and voice communication applications, may beinstalled on the electronic device 100 during its manufacture. Softwareapplications may include a message application 538, a device statemodule 540, a Personal Information Manager (PIM) 542, a connect module544 and an IT policy module 546. A message application 538 can be anysuitable software program that allows a user of the electronic device100 to send and receive electronic messages, wherein messages aretypically stored in the flash memory 508 of the electronic device 100. Adevice state module 540 provides persistence, i.e. the device statemodule 540 ensures that important device data is stored in persistentmemory, such as the flash memory 508, so that the data is not lost whenthe electronic device 100 is turned off or loses power. A PIM 542includes functionality for organizing and managing data items ofinterest to the user, such as, but not limited to, email, contacts,calendar events, and voice mails, and may interact with the wirelessnetwork 402. A connect module 544 implements the communication protocolsthat are required for the electronic device 100 to communicate with thewireless infrastructure and any host system, such as an enterprisesystem, that the electronic device 100 is authorized to interface with.An IT policy module 546 receives IT policy data that encodes the ITpolicy, and may be responsible for organizing and securing rules such asthe “Set Maximum Password Attempts” IT policy.

Other types of software applications or components 539 can also beinstalled on the electronic device 100, such as an application launcher548. These software applications 539 can be pre-installed applicationsor third party applications, which are added after the manufacture ofthe electronic device 100. Examples of third party applications includegames, calculators, utilities, etc.

The additional applications 539 can be loaded onto the electronic device100 through at least one of the wireless network 402, the auxiliary I/Osubsystem 512, the data port 514, the short-range communicationssubsystem 522, or any other suitable device subsystem 524.

The data port 514 can be any suitable port that enables datacommunication between the electronic device 100 and another computingdevice. The data port 514 can be a serial or a parallel port. In someinstances, the data port 514 can be a USB port that includes data linesfor data transfer and a supply line that can provide a charging currentto charge the battery 530 of the electronic device 100.

For voice communications, received signals are output to the speaker518, and signals for transmission are generated by the microphone 520.Although voice or audio signal output is accomplished primarily throughthe speaker 518, the display 102 can also be used to provide additionalinformation such as the identity of a calling party, duration of a voicecall, or other voice call related information.

Referring to FIGS. 5 and 6, one example of an electronic device 100 a isshown in FIG. 5 and another example of an electronic device 100 b isshown in FIG. 6. It will be appreciated that the numeral “100” willhereinafter refer to any electronic device 100, including the examples100 a and 100 b, those examples enumerated above or otherwise. It willalso be appreciated that a similar numbering convention may be used forother general features common between all figures.

The electronic device 100 a shown in FIG. 5 includes a touch-sensitivedisplay 102 a and a cursor or positioning device, which in this exampleis in the form of a trackpad 614 a. The trackpad 614 a permitsmulti-directional positioning of a selection indicator or cursor thatcan be displayed on the touch-sensitive display 102 a such that theselection cursor can be moved in an upward, downward, left and rightdirection, and if desired and/or permitted, in any diagonal direction. Aselection cursor may include a box, alteration of an icon or anycombination of features that enable the user to identify the currentlychosen icon or item. The trackpad 614 a in this example is situated onthe front face of a housing for electronic device 100 a to enable a userto maneuver the trackpad 614 a while holding the electronic device 100 ain one hand. The trackpad 614 a may serve as another input member (inaddition to a directional or positioning member) to provide selectioninputs to a processor of the electronic device and can preferably bepressed in a direction towards the housing of the electronic device 100a to provide such a selection input. It will be appreciated that thetrackpad 614 a is only one example of a suitable positioning device. Forexample, a trackball, touch-sensitive display, OLED, or other inputmechanism may equally apply.

The electronic device 100 a in FIG. 5 also includes a programmableconvenience button 615 a to activate a selection application such as,for example, a calendar or calculator. Further, electronic device 100 aalso includes an escape or cancel button 616 a, a camera button 617 a, amenu or option button 624 a and a keyboard 620 a. The camera button 617a is able to activate photo and video capturing functions, e.g. whenpressed in a direction towards the housing. The menu or option button624 a can be used to load a menu or list of options on the display 102when pressed. In this example, the escape or cancel button 616 a, themenu option button 624 a, and a keyboard 620 a are disposed on the frontface of the electronic device housing, while the convenience button 615a and camera button 617 a are disposed at the side of the housing. Thisbutton placement enables a user to operate these buttons while holdingthe electronic device 100 a in one hand. The keyboard 620 a is, in thisexample, a standard QWERTY keyboard, however, it will be appreciatedthat reduced QWERTY or virtual keyboards (e.g. as provided by atouch-sensitive display) may equally apply

It will be appreciated that for the electronic device 100, a wide rangeof one or more positioning or cursor/view positioning mechanisms such asa touch/track pad, a positioning wheel, a joystick button, a mouse, atouch-sensitive display, a set of arrow keys, a tablet, an accelerometer(for sensing orientation and/or movements of the electronic device 100etc.), OLED, or other whether presently known or unknown may beemployed. Similarly, any variation of keyboard 620 a may be used. Itwill also be appreciated that the electronic devices 100 shown in FIGS.5 and 6 are for illustrative purposes only and various other electronicdevices 100 are equally applicable to the following examples. Otherbuttons may also be disposed on the electronic device housing such ascolour coded “Answer” and “Ignore” buttons to be used in telephoniccommunications.

A front view of an example of the electronic device 100 b is shown inFIG. 6. The electronic device 100 b includes a touch-sensitive display102 b and a front camera 702. The touch-sensitive display 102 b includesa touch-sensitive display area 704 and a touch-sensitive non-displayarea 706. The touch-sensitive display area 704 serves as the positiondevice to provide an input mechanism in addition to displaycapabilities. The touch-sensitive non-display area 706 provides afurther input mechanism, for example, to control menu options of theelectronic device 100 b

Referring to FIG. 7, an example of a configuration for an applicationlauncher 548 is provided. The application launcher 548 can be one of theother software applications 539 of FIG. 4 that can be loaded on theelectronic device 100 or can be incorporated in another application(e.g. part of a message application 538). The application launcher 548can request details of activity occurring in, or receive inputs from,one or more other software applications 539 (e.g. a message notificationapplication 801), a component that can provide operating environmentinformation (e.g. operating system 534) and a component that can providean indicator of user presence (e.g. accelerometer 525 to detect motion).The application launcher 548 includes an event detector 800 fordetecting an event, an association module 802 for determining at leastone application associated with the event and an association storage 804for storing such information, a user presence detector 806 for detectingan indicator of user presence, and a launching module 808 for launchingan application associated with the event. The application launcher 548can optionally include a tracking module 810 to determine theassociation between an event and an application based on statisticalinformation generated from tracking activity of the user of theelectronic device 100.

The event detector 800 detects an event that is associated with anapplication. In the example of FIG. 1, the event can be a notificationalert 104 generated from a notification application 801. Thenotification application 801 can be part of a messaging application 538that includes the email viewer application 200, or the notificationapplication 801 may be a stand-alone application for a remote messagingservice, such as an online email provider, or social networking website.It will be appreciated that the subject of a notification alert can be anew message (e.g. email, text/SMS message, instant messaging, socialnetworking service), phone call, calendar appointment, status of theelectronic device 100 (e.g. low battery) or any other informationaccessible to the electronic device 100. In another example, the eventcan be one or more operating environment criterion that can bedetermined by the electronic device 100, such as a specific time of dayor a mode of operation of the electronic device 100.

The association module 802 determines at least one application that isassociated with the event detected by the event detector 800 and storessuch information in the association storage 804. In an example, theassociation module 802 may access a look-up table, stored in theassociation storage 804, by event to determine the associatedapplication. For example, a notification alert 104 can be associatedwith the message application 538, such as the email viewer application200 that is capable of viewing the message that is the subject of thenotification alert 104. In another example, the application may be a webbrowser directed to an online email provider or social networkingwebsite that can access the message that is the subject of thenotification alert 104.

In an example embodiment, the association module 804 can use a trackingmodule 810 to determine the application that is associated with anevent. The tracking module 810 can track the activity of a user of theelectronic device 100, such as the usage of an application in closeproximity to an occurrence of an event, and can obtain statisticalinformation regarding the event. The tracking module 810 can thendetermine the application associated with an event by selecting theapplication with the greatest probability of being accessed by the userafter the occurrence of the event, based on the statistical information.FIG. 10 illustrates an example processing flow for such generating andprocessing of statistical information as can be performed by thetracking module 810. For example, a user may routinely access the emailviewer application 200 in response to receiving a notification alert 104such that the tracking module 800 subsequently associates a notificationalert 104 with the email viewer application 200.

The user presence detector 806 detects an indicator of user presence byrequesting details of activity occurring in, or by receiving inputsfrom, other components that can be used to detect or suggest a presenceof a user of the electronic device 100. For example, motion of theelectronic device 100 can suggest that a user is physically near theelectronic device 100 in order for the user to move it. If the motionfollows closely after the event, the motion may be caused in response tothe user's interest in the event. In the example configuration of FIG.7, the user presence detector 806 detects changes in the readings of anaccelerometer 525 of the electronic device 100 to determine whether auser presence is detected. In an example, any change in theaccelerometer reading can be interpreted by the user presence detector806 as indicating a user presence. In another example, the user presencedetector 806 may be configured to only recognize certain accelerometerreading changes as indicating a user presence, such as a change thatwould result from a user lifting the electronic device 100.

It will be appreciated that other indicators of motion of the electronicdevice 100 may be used, such as changes in other sensor readings (e.g.magnetometer 527, gyroscope 529, etc.) or other inputs (e.g. data port514 connections, video or images captured by the camera 523, etc.). Inan example, the user presence detector 806 can detect the removal of theelectronic device 100 from a holster by detecting the removal of themagnetic influence of the holster using the magnetometer 527. In anotherexample, the user presence detector 806 can detect the disconnection ofthe electronic device 100 from a docking station or charger bymonitoring the data port 514 that is used to connect the electronicdevice 100 to the docking station or charger.

It will also be appreciated that other indicators of user presence canbe detected by the user presence detector 806 that do not necessarilyinvolve or suggest movement of the electronic device 100. For example, auser input, such as a key stroke, touch gesture, voice command, buttonpress, or other form of input that can be detected by the electronicdevice 100 can be used to indicate a user presence. If the user inputfollows closely after the event, the user input may be caused inresponse to the user's interest in the event. In an example of anelectronic device 100 operating in a bedside mode and outputting analarm, the user presence detector 806 can detect a user input to turnoff the alarm as indicating a user presence.

The launching module 808 launches the application(s) that is/areassociated with the event detected by the event detector 800, if anindicator of user presence is detected by the user presence detector 806within a predetermined period of time after the event. The launchingmodule 808 can obtain the application to be launched from theassociation module 802. In an example, if the application is not runningon the electronic device 100, the launching module 808 can load theapplication directly to the foreground of the electronic device 100. Ifthe application is already running on the electronic device 100, thelaunching module 808 can simply bring the application to the foreground.

In another example embodiment, upon detection of an event by the eventdetector 800, if the application associated with the event is notalready running the launching module 808 can load the applicationassociated with the detected event in the background. If an indicator ofuser presence is detected within a predetermined period of time afterthe event, the launching module 808 can then bring the application tothe foreground. Loading the application in the background prior todetecting an indicator of user presence enables the electronic device100 to start loading the application sooner, thus reducing the wait timefor the user. If an indicator of user presence is not detected withinthe predetermined period of time after detecting the event, thelaunching module 808 can close the application that has been loaded inthe background.

It will be appreciated that any module, application or componentexemplified herein that executes instructions or operations, such as theapplication launcher 548, may include or otherwise have access tocomputer readable media such as storage media, computer storage media,or data storage devices (removable and/or non-removable) such as, forexample, magnetic disks, optical disks, or tape. Computer storage mediamay include volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage of information, suchas computer readable instructions, data structures, program modules, orother data, except transitory propagating signals per se. Examples ofcomputer storage media include RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by anapplication, module, or both. Any such computer storage media may bepart of the electronic device 100 or accessible or connectable thereto.Any application or module herein described may be implemented usingcomputer readable/executable instructions or operations that may bestored or otherwise held by such computer readable media.

Referring to FIG. 8, an example set of computer executable and/orprocessor implemented instructions is provided for launching anapplication associated with an event, on an electronic device 100. At900, an event associated with at least one application is detected. At904, if an indicator of user presence is detected within a predeterminedperiod of time, then the application will be launched at 908. Otherwise,the instructions can be repeated, starting back at 900.

As noted above, at 900, an event associated with at least oneapplication is detected. In an example configuration of the applicationlauncher 548, the event detector 800 may implement 900 (FIG. 7).Referring back to the example of FIG. 1, the event can be a notificationalert 104. In another example, the event can be one or more operatingenvironment criteria, such as a specific time of day and/or operatingmode of the electronic device 100. In another example, the event can bea combination of an notification alert 104 and one or more operatingenvironment criteria.

At 904, a determination is made as to whether an indicator of userpresence is detected within a predetermined period of time after theevent. In an example configuration of the application launcher 548, theuser presence detector 806 may implement 900 (FIG. 7). Detection of anindicator of user presence after the predetermined period of time canincrease the likelihood that the indicator of user presence is notindicative of the user's interest in the event. It will be appreciatedthat the predetermined period of time can depend on the type and natureof the event, and/or the application associated with the event. Forexample, a notification alert 104 of a new email message may beassociated with a predetermined period of time of 5 to 10 seconds inwhich detection of an indicator of user presence will launch the emailviewer application 200.

In another example, the predetermined period of time may be much longer,for example 30 minutes, for an event corresponding to the time of daythat the user wakes up in the morning. In this example, there is agreater likelihood that an indicator of user presence detected within 30minutes of the scheduled wake up of the user is still part of the user'smorning routine, and thus, the user would want to launch theapplications on the electronic device 100 that are part of his/hermorning routine (e.g. email viewer application 200, weather, news,traffic, etc.).

At 908, if an indicator of user presence is detected within apredetermined period of time after the event, the applicationsassociated with the event are launched. In an example configuration ofthe application launcher 548, the launching module 808 may implement 908(FIG. 7).

Referring to FIG. 9, another example set of computer executable and/orprocessor implemented instructions is provided for launching anapplication associated with an event, on an electronic device 100. Inthis example application, at 1000, an event associated with at least oneapplication is detected. At 1002, if the application associated with theevent has not already been loaded on the electronic device 100 prior tothe event, the application is loaded in the background at 1003. At 1004,if an indicator of user presence is detected within a predeterminedperiod of time, then the application is brought to the foreground at1008. Otherwise, if the application was not loaded prior to the event,the application is closed at 1010 and the instructions can then berepeated, starting back at 1000.

Similarly to 900, 904 and 908, in an example configuration of theapplication launcher 548, the event detector 800, user presence detector808 and launching module 808 may implement 1000, 1004 and 1008,respectively (FIG. 7).

At 1002, a determination is made as to whether the applicationassociated with the event has been loaded on the electronic device 100prior to the event. If not, the application associated with the event isloaded in the background at 1003. In an example configuration of theapplication launcher 548, the launching module 808 may implement 1002and 1003 (FIG. 7).

As mentioned above, loading the application in the background prior todetecting an indicator of user presence at 1004 enables the electronicdevice 100 to start loading an application sooner, thus reducing thewait time for a user to use the application. The savings in loading timemay be greater when an event is associated with multiple applications.The ability to load the applications associated with an eventimmediately after detecting the event may enable the electronic device100 to complete loading of all the applications before an indicator ofuser presence is detected. In such cases, once an indicator of userpresence is detected at 1004, the applications will only need to bebrought to the foreground, which can take considerably less time thanloading the applications, to give the appearance that the electronicdevice 100 has provided a near instantaneous response to the indicatorof user presence.

If an indicator of user presence is not detected within a predeterminedperiod of time, at 1006, a determination is made as to whether theapplication(s) associated with the event was already loaded on theelectronic device 100 prior to detecting the event. If theapplication(s) was not already loaded prior to the event, theapplication(s) loaded in the background is closed at 1010 to restore theelectronic device 100 to its prior state. In an example configuration ofthe application launcher 548, the launching module 808 may implement1006 and 1010 (FIG. 7).

It will be appreciated that the examples and corresponding diagrams usedherein are for illustrative purposes only. Different configurations andterminology can be used without departing from the principles expressedherein. For instance, components and modules can be added, deleted,modified, or arranged with differing connections without departing fromthese principles.

The steps or operations in the flow charts and diagrams described hereinare just for example. There may be many variations to these steps oroperations without departing from the spirit of the invention orinventions. For instance, the steps may be performed in a differingorder, or steps may be added, deleted, or modified.

Although the above has been described with reference to certain specificexamples, various modifications thereof will be apparent to thoseskilled in the art as outlined in the appended claims.

1. A method of operating an electronic device to automatically load anapplication, the method comprising: generating, automatically at aprocessor, statistical information based on tracking proximities of aplurality of past accesses of an application on a device and eventsdetected by the device; selecting, based on the statistical information,the application as an application with a greatest probability of beingaccessed by a user within a time proximity of an event, wherein theevent is defined by one or more operating environment criteriaassociated with launching the application; determining, at theprocessor, an association between the event and the application based onstatistical information regarding a user's launching of the applicationin proximity to a particular time of day over a plurality of days;detecting, based on and subsequent to the determining the association,an occurrence of the event; in response to detecting the occurrence ofthe event and based on the association, automatically loading theapplication into a background of the device, wherein the loading theapplication into the background of the device is independent of apresent user command to load the application; receiving, at theprocessor within a predetermined period of time after the occurrence ofthe event, an indication of user presence; and based on loading theapplication and receiving the indication of user presence within thepredetermined period of time after the occurrence of the event, bringingthe application into a foreground of the device.
 2. The method of claim1, wherein the one or more operating environment criteria comprises anoperating mode of the device.
 3. The method of claim 1, wherein thedetermining the association comprises: associating a calendar event withthe application, and wherein the event is an occurrence of the calendarevent.
 4. The method of claim 1, wherein the determining the associationcomprises identifying, based on statistical information regarding aplurality of past operations of the device, a temporal correlationbetween the event and a subsequent use of the application.
 5. The methodof claim 1, wherein the event comprises a respective occurrence of analarm associated with a time of day, and the determining the associationis based on statistical information regarding the user's launching ofthe application within the time proximity of occurrences of the alarm.6. The method of claim 1, further comprising: detecting, based on thedetermining, a second occurrence of the event; in response to detectingthe second occurrence of the event, loading the application into abackground of the device; monitoring, at the processor, for receipt of asecond indication of user presence within the predetermined period oftime after the second occurrence of the event; and based on loading theapplication and not receiving the second indication of user presence,closing the application .
 7. The method of claim 1, wherein thedetermining the association comprises: determining a particular type ofnotification alert is an indication of receipt of a message to beprocessed by the application, and wherein the event is the particulartype of notification alert.
 8. The method of claim 1, wherein the eventcomprises an alarm occurring while the electronic device is operating ina bedside mode.
 9. The method of claim 8, wherein receiving theindication of user presence comprises detecting a user input to turn offthe alarm.
 10. A device, comprising: a processor; a memory coupled tothe processor, the processor configured to: automatically generate,statistical information based on tracking proximities of a plurality ofpast accesses of an application on a device and events detected by thedevice; selecting, based on the statistical information, the applicationas an application with a greatest probability of being accessed by auser based within a time proximity of an event, wherein the event isdefined by one or more operating environment criteria associated withlaunching the application; determine, based on the statisticalinformation, an association between the event and the application basedon statistical information regarding a user's launching of theapplication in proximity to a particular time of day over a plurality ofdays; detect, based on and subsequent to a determination of theassociation, an occurrence of the event; in response to a detection ofthe occurrence of the event and based on the association, load theapplication into a background of the device automatically andindependently of a present user command to load the application ;receive, within a predetermined period of time after the occurrence ofthe event, an indication of user presence; and based on loading theapplication and receiving the indication of user presence within thepredetermined period of time after the occurrence of the event, bringthe application into a foreground of the device.
 11. The device of claim10, wherein the one or more operating environment criteria comprises anoperating mode of the device.
 12. The device of claim 10, wherein theprocessor determines the association by at least: associating a calendarevent with the application, and wherein the event is an occurrence ofthe calendar event.
 13. The device of claim 10, wherein the processordetermines the association by at least identifying, based on statisticalinformation regarding a plurality of past operations of the device, atemporal correlation between the event and a subsequent use of theapplication.
 14. The device of claim 10, wherein the event comprises arespective occurrence of an alarm associated with a time of day, and theprocessor determines the association based on statistical informationregarding the user's launching of the application within the timeproximity of occurrences of the alarm.
 15. The device of claim 10, theprocessor being further configured to: detect, based on a determinationof the association, a second occurrence of the event; in response to adetection of the second occurrence of the event, load the applicationinto a background of the device; monitor for receipt of a secondindication of user presence within the predetermined period of timeafter the second occurrence of the event; and based on loading theapplication and not receiving the second indication of user presence,close the application .
 16. The device of claim 10, wherein theprocessor determines the association by at least: determining aparticular type of receipt notification is an indication of a message tobe processed by the application, and wherein the event is the particulartype of receipt notification.
 17. A computer readable storage mediumhaving computer readable program code embodied therewith, the computerreadable program code comprising instructions for: generating,automatically at a processor, statistical information based on trackingproximities of a plurality of past accesses of an application on adevice and events detected by the device; selecting, based on thestatistical information, the application as an application with agreatest probability of being accessed by a user based within a timeproximity of an event, wherein the event is defined by one or moreoperating environment criteria associated with launching theapplication; determining, at the processor based on the statisticalinformation, an association between the event and the application basedon statistical information regarding a user's launching of theapplication in proximity to a particular time of day over a plurality ofdays; detecting, based on and subsequent to the determining theassociation, an occurrence of the event; in response to detecting theoccurrence of the event and based on the association, automaticallyloading the application into a background of the device, wherein theloading the application into the background of the device is independentof a present user command to load the application; receiving, at theprocessor within a predetermined period of time after the occurrence ofthe event, an indication of user presence; and based on loading theapplication and receiving the indication of user presence within thepredetermined period of time after the occurrence of the event, bringingthe application into a foreground of the device.
 18. The computerreadable storage medium of claim 17, wherein the one or more operatingenvironment criteria comprises an operating mode of the device.
 19. Thecomputer readable storage medium of claim 17, wherein the determiningthe association comprises identifying, based on statistical informationregarding a plurality of past operations of the device, a temporalcorrelation between the event and a subsequent use of the application.20. The computer readable storage medium of claim 17, wherein the eventcomprises a respective occurrence of an alarm associated with a time ofday, and the determining the association is based on statisticalinformation regarding the user's launching of the application within thetime proximity of occurrences of the alarm.